
//微信 js sdk
import wx from "weixin-js-sdk";
import { getWxjsConfig } from "@/api/filter"
import { request } from '@/utils/request'
import cache from '@/utils/cache';
import axios from 'axios';

/**
 * 微信自定义分享 配置
 * @param sd  接口配置 对象
 * @param links  链接地址
 * @param title  分享的标题
 * @param desc  描述
 * @param imgUrl  300X300 以上的图
 */
function _wxInit(sd, links, title, desc, imgUrl) {
  wx.config({
    debug: false,
    appId: sd.appId,
    timestamp: sd.timestamp,
    nonceStr: sd.nonceStr,
    signature: sd.signature,
    jsApiList: [
      "checkJsApi",
      "onMenuShareTimeline", //
      "onMenuShareAppMessage",
      "onMenuShareQQ",
      "onMenuShareWeibo"
    ]
  });
  wx.ready(function () {
    wx.onMenuShareTimeline({
      title: title, // 分享标题
      link: links, // 分享链接'
      imgUrl: imgUrl, // 分享图标
      success: function () {
        // 分享纪录
        _wxShareRecord(links, title, desc, imgUrl, "分享到朋友圈");
      },
      cancel: function () {
        alert("分享失败,您取消了分享!");
      }
    });
    wx.onMenuShareAppMessage({
      title: title, // 分享标题
      desc: desc, // 分享描述
      link: links, // 分享链接
      imgUrl: imgUrl, // 分享图标
      success: function () {
        // 分享纪录
        _wxShareRecord(links, title, desc, imgUrl, "分享给好友"); //好友不用需--存在分销给 文件助手自己分享给自己的情况
      },
      cancel: function () {
        alert("分享失败,您取消了分享!");
      }
    });
    wx.onMenuShareQQ({
      title: title, // 分享标题
      desc: desc, // 分享描述
      link: links, // 分享链接
      imgUrl: imgUrl, // 分享图标
      success: function () {
        // 分享纪录
        _wxShareRecord(links, title, desc, imgUrl, "分享到QQ");
      },
      cancel: function () {
        alert("分享失败,您取消了分享!");
      }
    });
    wx.onMenuShareWeibo({
      title: title, // 分享标题
      desc: desc, // 分享描述
      link: links, // 分享链接
      imgUrl: imgUrl, // 分享图标
      success: function () {
        // 分享纪录
        _wxShareRecord(links, title, desc, imgUrl, "分享到新浪微博");
      },
      cancel: function () {
        alert("分享失败,您取消了分享!");
      }
    });
  });
  wx.error(function (res) {
    //alert("error")
    // config信息验证失败会执行error函数，如签名过期导致验证失败，具体错误信息可以打开config的debug模式查看，也可以在返回的res参数中查看，对于SPA可以在这里更新签名。
  });
}

//判断是否微信登陆 是不是微信浏览器
function _isWeiXin() {
  let ua = window.navigator.userAgent.toLowerCase();
  if (ua.match(/MicroMessenger/i) == "micromessenger") {
    return true;
  } else {
    return false;
  }
}


//分享 记录分享结果
function _wxShareRecord(links, title, desc, imgUrl, ways) {
  var uid = _getCookie("fc_uid");
  //TODO 若需记录分享 结果请在此处写方法
}


/**
 * 微信自定义分享 配置
 * @param links  链接地址
 * @param title  分享的标题
 * @param desc   描述
 * @param imgUrl 300X300 以上的图
 */
export async function _wxConfig(links, title, desc, imgUrl) {
  //var uid = _getCookie("fc_uid");//当前登录人信息
  title += " " + request.title;
  var user= JSON.parse(cache.getLocal('zgz_user')); 
  var url = request.domain + links+"?curuid="+user.id;//自定义 分享出去的页面地址
  //alert(url);y
  document.title = title;

  if (desc == undefined || desc == "") {
    desc = request.defaultdesc;
  }
  if (imgUrl == undefined || desc == "") {
    imgUrl = request.defaultcover;
  } else {
    var imgpath = imgUrl.replace("_ms.", "_mx.");
    if (imgpath.indexOf('http://') == -1) {
      imgUrl = "http:" + imgpath;
    }  
  }
  if (_isWeiXin()) {
    var cururl = window.location.href;
    //获取微信信息，如果之前没有使用微信登陆过，将进行授权登录
    console.log(cururl);
    await getWxjsConfig(cururl).then(res => {
      if (res.StatusCode === 200) {
        // 调用微信分享
        _wxInit(res.Data, url, title, desc, imgUrl);
      } else {
        alert("微信验证页面分享配置错误，请稍后重试！");
      }
    });
  }
}